Support removing nodes from store if value to store is None.
authorcl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Wed, 14 Sep 2005 19:29:25 +0000 (19:29 +0000)
committercl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Wed, 14 Sep 2005 19:29:25 +0000 (19:29 +0000)
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
tools/python/xen/xend/xenstore/xstransact.py

index 378dd179cb392e3ffb1beee2eaa22e321cf5f43b..7cabc251275d36fa7d27e5359c068a9f66b336bd 100644 (file)
@@ -113,7 +113,7 @@ class xstransact:
             else:
                 (key, fn, defval) = tup
             try:
-                val = fn(self.read(key))
+                val = fn(self._read(key))
             except TypeError:
                 val = defval
             ret.append(val)
@@ -128,12 +128,16 @@ class xstransact:
                 try:
                     fmt = { str : "%s",
                             int : "%i",
-                            float : "%f" }[type(val)]
+                            float : "%f",
+                            type(None) : None }[type(val)]
                 except KeyError:
                     raise TypeError
             else:
                 (key, val, fmt) = tup
-            self.write(key, fmt % val)
+            if val:
+                self._write(key, fmt % val)
+            else:
+                self._remove(key)
 
 
     def Read(cls, path, *args):